The technology disclosed relates to tracking and analyzing internet traffic flows. In particular, it relates to line speed checking of sequence numbers of frames in internet traffic flows.
When testing networks or network equipment, test frames in thousands of flows can be generated, passed through the networks or network equipment under test, and analyzed after they pass through the networks or network equipment under test. Information about each of the flows, such as the total number of frames received, the total bytes in each frame, and whether the expected frames are received in the expected order, is accumulated and analyzed. For checking against loss of frames, duplication of frames, and frames that are out of order, each frame carries within it a sequence number. When the frames are generated for test purposes, the sequence number in each frame in a flow is one greater than the sequence number of the immediately preceding frame in the same flow. When the frames are analyzed, the sequence numbers are checked to see if they are consecutive for each flow.
As network speeds have increased, it has become more difficult for a single processer, such as an FPGA (Field Programmable Gate Array) or a CPU (Central Processing Unit), to keep up with the traffic flow and perform necessary calculations on each frame. An approach to solve this problem is to split a fast traffic flow between multiple processes, where one or more processes can be implemented in one or more processors such as FPGAs or CPUs. This splitting approach works for certain statistics, such as the total number of frames received in a flow, and the total bytes in each frame.
However, detection of sequence errors (missing frames, duplicated frames, and out of order frames) requires each frame to be compared with its predecessor in the same flow, but in the splitting approach, two processes between which a fast traffic flow is split do not know about the relationship between a frame and its preceding frame.
An opportunity arises to provide a method of line speed sequence number checking of frames at increased network speeds that require splitting fast flows into slower flows for network testing.